;; -*- scheme -*-
; object definitions ...
;; Enumerations and flags ...

(define-enum BrushApplicationMode
  (in-module "Gimp")
  (c-name "GimpBrushApplicationMode")
  (gtype-id "GIMP_TYPE_BRUSH_APPLICATION_MODE")
  (values
    '("hard" "GIMP_BRUSH_HARD")
    '("soft" "GIMP_BRUSH_SOFT")
  )
)

(define-enum BrushGeneratedShape
  (in-module "Gimp")
  (c-name "GimpBrushGeneratedShape")
  (gtype-id "GIMP_TYPE_BRUSH_GENERATED_SHAPE")
  (values
    '("circle" "GIMP_BRUSH_GENERATED_CIRCLE")
    '("square" "GIMP_BRUSH_GENERATED_SQUARE")
    '("diamond" "GIMP_BRUSH_GENERATED_DIAMOND")
  )
)

(define-enum ConvertDitherType
  (in-module "Gimp")
  (c-name "GimpConvertDitherType")
  (gtype-id "GIMP_TYPE_CONVERT_DITHER_TYPE")
  (values
    '("no-dither" "GIMP_NO_DITHER")
    '("fs-dither" "GIMP_FS_DITHER")
    '("fslowbleed-dither" "GIMP_FSLOWBLEED_DITHER")
    '("fixed-dither" "GIMP_FIXED_DITHER")
  )
)

(define-enum ConvertPaletteType
  (in-module "Gimp")
  (c-name "GimpConvertPaletteType")
  (gtype-id "GIMP_TYPE_CONVERT_PALETTE_TYPE")
  (values
    '("make-palette" "GIMP_MAKE_PALETTE")
    '("reuse-palette" "GIMP_REUSE_PALETTE")
    '("web-palette" "GIMP_WEB_PALETTE")
    '("mono-palette" "GIMP_MONO_PALETTE")
    '("custom-palette" "GIMP_CUSTOM_PALETTE")
  )
)

(define-enum ConvolutionType
  (in-module "Gimp")
  (c-name "GimpConvolutionType")
  (gtype-id "GIMP_TYPE_CONVOLUTION_TYPE")
  (values
    '("normal-convol" "GIMP_NORMAL_CONVOL")
    '("absolute-convol" "GIMP_ABSOLUTE_CONVOL")
    '("negative-convol" "GIMP_NEGATIVE_CONVOL")
  )
)

(define-enum ConvolveType
  (in-module "Gimp")
  (c-name "GimpConvolveType")
  (gtype-id "GIMP_TYPE_CONVOLVE_TYPE")
  (values
    '("blur-convolve" "GIMP_BLUR_CONVOLVE")
    '("sharpen-convolve" "GIMP_SHARPEN_CONVOLVE")
  )
)

(define-enum FillType
  (in-module "Gimp")
  (c-name "GimpFillType")
  (gtype-id "GIMP_TYPE_FILL_TYPE")
  (values
    '("foreground-fill" "GIMP_FOREGROUND_FILL")
    '("background-fill" "GIMP_BACKGROUND_FILL")
    '("white-fill" "GIMP_WHITE_FILL")
    '("transparent-fill" "GIMP_TRANSPARENT_FILL")
    '("pattern-fill" "GIMP_PATTERN_FILL")
  )
)

(define-enum GradientSegmentColor
  (in-module "Gimp")
  (c-name "GimpGradientSegmentColor")
  (gtype-id "GIMP_TYPE_GRADIENT_SEGMENT_COLOR")
  (values
    '("rgb" "GIMP_GRADIENT_SEGMENT_RGB")
    '("hsv-ccw" "GIMP_GRADIENT_SEGMENT_HSV_CCW")
    '("hsv-cw" "GIMP_GRADIENT_SEGMENT_HSV_CW")
  )
)

(define-enum GradientSegmentType
  (in-module "Gimp")
  (c-name "GimpGradientSegmentType")
  (gtype-id "GIMP_TYPE_GRADIENT_SEGMENT_TYPE")
  (values
    '("linear" "GIMP_GRADIENT_SEGMENT_LINEAR")
    '("curved" "GIMP_GRADIENT_SEGMENT_CURVED")
    '("sine" "GIMP_GRADIENT_SEGMENT_SINE")
    '("sphere-increasing" "GIMP_GRADIENT_SEGMENT_SPHERE_INCREASING")
    '("sphere-decreasing" "GIMP_GRADIENT_SEGMENT_SPHERE_DECREASING")
  )
)

(define-enum HistogramChannel
  (in-module "Gimp")
  (c-name "GimpHistogramChannel")
  (gtype-id "GIMP_TYPE_HISTOGRAM_CHANNEL")
  (values
    '("value" "GIMP_HISTOGRAM_VALUE")
    '("red" "GIMP_HISTOGRAM_RED")
    '("green" "GIMP_HISTOGRAM_GREEN")
    '("blue" "GIMP_HISTOGRAM_BLUE")
    '("alpha" "GIMP_HISTOGRAM_ALPHA")
  )
)

(define-enum HueRange
  (in-module "Gimp")
  (c-name "GimpHueRange")
  (gtype-id "GIMP_TYPE_HUE_RANGE")
  (values
    '("all-hues" "GIMP_ALL_HUES")
    '("red-hues" "GIMP_RED_HUES")
    '("yellow-hues" "GIMP_YELLOW_HUES")
    '("green-hues" "GIMP_GREEN_HUES")
    '("cyan-hues" "GIMP_CYAN_HUES")
    '("blue-hues" "GIMP_BLUE_HUES")
    '("magenta-hues" "GIMP_MAGENTA_HUES")
  )
)

(define-enum ImageType
  (in-module "Gimp")
  (c-name "GimpImageType")
  (gtype-id "GIMP_TYPE_IMAGE_TYPE")
  (values
    '("rgb" "GIMP_RGB_IMAGE")
    '("rgba" "GIMP_RGBA_IMAGE")
    '("gray" "GIMP_GRAY_IMAGE")
    '("graya" "GIMP_GRAYA_IMAGE")
    '("indexed" "GIMP_INDEXED_IMAGE")
    '("indexeda" "GIMP_INDEXEDA_IMAGE")
  )
)

(define-enum LayerModeEffects
  (in-module "Gimp")
  (c-name "GimpLayerModeEffects")
  (gtype-id "GIMP_TYPE_LAYER_MODE_EFFECTS")
  (values
    '("normal-mode" "GIMP_NORMAL_MODE")
    '("dissolve-mode" "GIMP_DISSOLVE_MODE")
    '("behind-mode" "GIMP_BEHIND_MODE")
    '("multiply-mode" "GIMP_MULTIPLY_MODE")
    '("screen-mode" "GIMP_SCREEN_MODE")
    '("overlay-mode" "GIMP_OVERLAY_MODE")
    '("difference-mode" "GIMP_DIFFERENCE_MODE")
    '("addition-mode" "GIMP_ADDITION_MODE")
    '("subtract-mode" "GIMP_SUBTRACT_MODE")
    '("darken-only-mode" "GIMP_DARKEN_ONLY_MODE")
    '("lighten-only-mode" "GIMP_LIGHTEN_ONLY_MODE")
    '("hue-mode" "GIMP_HUE_MODE")
    '("saturation-mode" "GIMP_SATURATION_MODE")
    '("color-mode" "GIMP_COLOR_MODE")
    '("value-mode" "GIMP_VALUE_MODE")
    '("divide-mode" "GIMP_DIVIDE_MODE")
    '("dodge-mode" "GIMP_DODGE_MODE")
    '("burn-mode" "GIMP_BURN_MODE")
    '("hardlight-mode" "GIMP_HARDLIGHT_MODE")
    '("softlight-mode" "GIMP_SOFTLIGHT_MODE")
    '("grain-extract-mode" "GIMP_GRAIN_EXTRACT_MODE")
    '("grain-merge-mode" "GIMP_GRAIN_MERGE_MODE")
    '("color-erase-mode" "GIMP_COLOR_ERASE_MODE")
    '("new-overlay-mode" "GIMP_NEW_OVERLAY_MODE")
  )
)

(define-enum MaskApplyMode
  (in-module "Gimp")
  (c-name "GimpMaskApplyMode")
  (gtype-id "GIMP_TYPE_MASK_APPLY_MODE")
  (values
    '("apply" "GIMP_MASK_APPLY")
    '("discard" "GIMP_MASK_DISCARD")
  )
)

(define-enum MergeType
  (in-module "Gimp")
  (c-name "GimpMergeType")
  (gtype-id "GIMP_TYPE_MERGE_TYPE")
  (values
    '("expand-as-necessary" "GIMP_EXPAND_AS_NECESSARY")
    '("clip-to-image" "GIMP_CLIP_TO_IMAGE")
    '("clip-to-bottom-layer" "GIMP_CLIP_TO_BOTTOM_LAYER")
    '("flatten-image" "GIMP_FLATTEN_IMAGE")
  )
)

(define-enum OffsetType
  (in-module "Gimp")
  (c-name "GimpOffsetType")
  (gtype-id "GIMP_TYPE_OFFSET_TYPE")
  (values
    '("background" "GIMP_OFFSET_BACKGROUND")
    '("transparent" "GIMP_OFFSET_TRANSPARENT")
  )
)

(define-enum OrientationType
  (in-module "Gimp")
  (c-name "GimpOrientationType")
  (gtype-id "GIMP_TYPE_ORIENTATION_TYPE")
  (values
    '("horizontal" "GIMP_ORIENTATION_HORIZONTAL")
    '("vertical" "GIMP_ORIENTATION_VERTICAL")
    '("unknown" "GIMP_ORIENTATION_UNKNOWN")
  )
)

(define-enum RotationType
  (in-module "Gimp")
  (c-name "GimpRotationType")
  (gtype-id "GIMP_TYPE_ROTATION_TYPE")
  (values
    '("90" "GIMP_ROTATE_90")
    '("180" "GIMP_ROTATE_180")
    '("270" "GIMP_ROTATE_270")
  )
)


;; From ../../libgimp/gimpenums.h

(define-function gimp_brush_application_mode_get_type
  (c-name "gimp_brush_application_mode_get_type")
  (return-type "GType")
)

(define-function gimp_brush_generated_shape_get_type
  (c-name "gimp_brush_generated_shape_get_type")
  (return-type "GType")
)

(define-function gimp_convert_dither_type_get_type
  (c-name "gimp_convert_dither_type_get_type")
  (return-type "GType")
)

(define-function gimp_convert_palette_type_get_type
  (c-name "gimp_convert_palette_type_get_type")
  (return-type "GType")
)

(define-function gimp_convolution_type_get_type
  (c-name "gimp_convolution_type_get_type")
  (return-type "GType")
)

(define-function gimp_convolve_type_get_type
  (c-name "gimp_convolve_type_get_type")
  (return-type "GType")
)

(define-function gimp_fill_type_get_type
  (c-name "gimp_fill_type_get_type")
  (return-type "GType")
)

(define-function gimp_gradient_segment_color_get_type
  (c-name "gimp_gradient_segment_color_get_type")
  (return-type "GType")
)

(define-function gimp_gradient_segment_type_get_type
  (c-name "gimp_gradient_segment_type_get_type")
  (return-type "GType")
)

(define-function gimp_histogram_channel_get_type
  (c-name "gimp_histogram_channel_get_type")
  (return-type "GType")
)

(define-function gimp_hue_range_get_type
  (c-name "gimp_hue_range_get_type")
  (return-type "GType")
)

(define-function gimp_layer_mode_effects_get_type
  (c-name "gimp_layer_mode_effects_get_type")
  (return-type "GType")
)

(define-function gimp_mask_apply_mode_get_type
  (c-name "gimp_mask_apply_mode_get_type")
  (return-type "GType")
)

(define-function gimp_merge_type_get_type
  (c-name "gimp_merge_type_get_type")
  (return-type "GType")
)

(define-function gimp_offset_type_get_type
  (c-name "gimp_offset_type_get_type")
  (return-type "GType")
)

(define-function gimp_orientation_type_get_type
  (c-name "gimp_orientation_type_get_type")
  (return-type "GType")
)

(define-function gimp_rotation_type_get_type
  (c-name "gimp_rotation_type_get_type")
  (return-type "GType")
)

(define-function gimp_enums_init
  (c-name "gimp_enums_init")
  (return-type "none")
)

(define-function gimp_enums_get_type_names
  (c-name "gimp_enums_get_type_names")
  (return-type "const-gchar**")
  (parameters
    '("gint*" "n_type_names")
  )
)


